# -*- coding: utf-8 -*-


import  wx
import wx.grid


class GenericTable(wx.grid.PyGridTableBase):
            
    def __init__(self, data, rowLabels=None, colLabels=None):
        wx.grid.PyGridTableBase.__init__(self)
        self.data = data
        self.rowLabels = rowLabels
        self.colLabels = colLabels
        #self.SetCellSize(2, 2, 2, 3)
        
    def GetNumberRows(self):
        return len(self.data)    
    """
    def SetData(self, data, rowLabels, colLabels):
        self.data = data
        self.rowLabels = rowLabels
        self.colLabels = colLabels
    """
    def GetNumberCols(self):
        return len(self.data[0])

    def GetColLabelValue(self, col):
        if self.colLabels:
            return self.colLabels[col]
        
    def GetRowLabelValue(self, row):
        if self.rowLabels:
            return self.rowLabels[row]
        
    def IsEmptyCell(self, row, col):
        return False

    def GetValue(self, row, col):
        return self.data[row][col]

    def SetValue(self, row, col, value):
        pass 
        
    def update(self, grid, data, rowLabels, colLabels):
        #grid.BeginBatch()
        self.data = data
        self.rowLabels = rowLabels
        self.colLabels = colLabels
        #grid.EndBatch()
        #grid.AdjustScrollbars()
        #grid.ForceRefresh()
        #grid.Fit()
